﻿using System;
using System.IO;

namespace SearchForJPG
{
    /// <summary>
    /// 查找C盘下所有jpg文件
    /// </summary>
    class Program
    {
        static int counts = 0;//定义计数器
        static void Main(string[] args)
        {
            DirectoryInfo Dir = new DirectoryInfo(@"C:\"); //获取当前地址的目录
            Search(Dir);                                   //调用Search函数
            Console.WriteLine();
            Console.WriteLine($"C盘下共{counts}个jpg文件");//输出jpg文件总数
            Console.ReadKey();
        }
        /// <summary>
        /// 获取c盘下所有jpg文件并输出其地址
        /// </summary>
        /// <param name="Dir"></param>
        static void Search(DirectoryInfo Dir)
        {
            
            DirectoryInfo[] subDirs = Dir.GetDirectories();//获取子目录
            foreach (var subDir in subDirs)                //遍历每个子目录
            {
                try
                {
                    Search(subDir);                        //子目录继续调用Search函数
                }
                catch(Exception) 
                {
                    continue;                              //若查找错误进入下一个目录
                }
            }
           
            FileInfo[] jpgFiles = Dir.GetFiles(@"*.jpg");  //获取当前地址下所有jpg文件
            foreach (var jpgFile in jpgFiles)              //输出每个jpg文件的地址
            {
                Console.WriteLine(jpgFile.FullName);
                counts++;
            }
        }
    }
}
